import { quickCheckQrcode } from '@/utils/qrcode-validator'
import { showToast } from 'vant'

/**
 * 需要收款码验证的路由
 */
const QRCODE_REQUIRED_ROUTES = [
  '/points-order',
  '/order',
  '/vip-order',
  '/payment-confirm',
  '/my-purchases',
  '/my-purchases/detail'
]

/**
 * 收款码验证路由守卫
 */
export const qrcodeGuard = async (to, from, next) => {
  // 检查是否需要收款码验证
  if (QRCODE_REQUIRED_ROUTES.some(route => to.path.startsWith(route))) {
    try {
      // 快速检查收款码状态
      const qrcodeCheck = await quickCheckQrcode()
      
      if (!qrcodeCheck.valid) {
        // 收款码状态不满足要求，显示提示并跳转
        showToast(qrcodeCheck.message)
        
        // 跳转到收款码管理页面
        next('/my-qrcode')
        return
      }
    } catch (error) {
      console.error('收款码验证失败:', error)
      showToast('收款码状态检查失败，请稍后重试')
      next('/my-qrcode')
      return
    }
  }
  
  // 验证通过或不需要验证，继续导航
  next()
}

/**
 * 应用路由守卫
 */
export const setupQrcodeGuard = (router) => {
  router.beforeEach(qrcodeGuard)
} 